NEPy LIBRARY DEMO: $batch$

Neuroelectrics Corporation
Created November 2018
Modified: -

CONTENTS

  1. Description
  2. Set up
  3. Get help
  4. Preprocess a directory

NOTE: Make sure you have gone through NEpy demo 1-Frida before starting with this one, it will help!

1. Description

`batch` is a funciton which you input a directory and it performs a Frida test for each of the files available. Such files have to be in any of these formats: `.easy`, `.easy.gz`, `.nedf` with a corresponding `.info` file if available. For each of the files, `batch` performs the following: ``` f = Frida(filepath, author=author, parameters=parameters) f.plotEEG() f.plotPSD() f.QC() f.preprocess(pipeline) f.QC() f.plotEEG() f.plotPSD() ```

2. Set up

When runnign the next cell, three input boxes are going to appear asking for the necessary data to set up:

  • Your name or ID. Example: MyName

  • The path where you have stored the NEpy repository. Copy paste the path into that box. Example: C:\Users\MyUser\Documents\Git\NEpy_v0.1.

  • The path where you have stored the file(s) you want to read (.easy, .easy.gz, .info). Example: C:\Users\MyUser\Documents\Git\NEpy_v0.1\sampledata

In [1]:
author = input('\033[1mUser name:\033[0m \n')
nepypath = input('\033[1mNEpy repository path:\033[0m \n ')
datapath = input('\033[1mData path:\033[0m \n ')

import sys
import os
import time
sys.path.append(nepypath)
from nepy.frida.frida import Frida
from nepy.frida.batch import processDirectory

print('\n')
%load_ext autoreload
%autoreload 2
print("______________________________________________")
print ("\nNotebook started:", time.strftime("%Y-%m-%d %H:%M"))
User name: 
Roser
NEpy repository path: 
 C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1
Data path: 
 C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles


______________________________________________

Notebook started: 2019-04-15 16:01

3. Get help

Don't know how to deal with batch? No worries, ask for help!

The help function (similar to MATLAB) will print a description and an exaple of use of the batch function.

In [2]:
help(processDirectory)
Help on function processDirectory in module nepy.frida.batch:

processDirectory(datapath, author='anonymous', pipeline=None, parameters=None, plotit=True)
    Process all .easy or .easy.gz files in data's directory using Frida.
    :param datapath: directory of the folder containing the data.
    :param author: ('anonymous') user.
    :param pipeline: (['referenceData', 'detrendData', 'notch', 'filterDataA2B'])
    :param parameters: check Frida docstring for more information.
    :param plotit: flag to plot or not the data.
    :return: list of processed and skipped files.
    
    Example of use:
    >>> [processed, skipped] = processDirectory(datapath)


4. Preprocess a directory

It is really simple! You just need to copy the following line:

[processed, skipped] = processDirectory(datapath)

The arguments pipeline and parameters (see help(Frida)) are optional.

In [4]:
parameters = {
    'signal_offset_limit': 1.,
    'signal_std_limit': 15.,   
    'epoch_length': 10.,
    'epoch_amp_threshold': 75.,
    'epoch_std_threshold': 30.,
    'detrend_time': 10.,
    'line_freq': 50.,
    'Q_notch': 30.,
    'low_cutoff_freq': 2.,
    'high_cutoff_freq': 45.,
    'order': 5,
    'reference_electrodes': ['Cz']
}

[processed, skipped] = processDirectory(datapath, parameters=parameters)
Running with these arguments: {'plotit': True, 'parameters': {'signal_offset_limit': 1.0, 'signal_std_limit': 15.0, 'epoch_length': 10.0, 'epoch_amp_threshold': 75.0, 'epoch_std_threshold': 30.0, 'detrend_time': 10.0, 'line_freq': 50.0, 'Q_notch': 30.0, 'low_cutoff_freq': 2.0, 'high_cutoff_freq': 45.0, 'order': 5, 'reference_electrodes': ['Cz']}, 'pipeline': None, 'author': 'anonymous', 'datapath': 'C:\\Users\\roser.sanchez\\Desktop\\EEG_DATA\\testfiles'}



##########################################################################

         Processing C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214090159_testboard_E8.easy
##########################################################################


Found the file: C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214090159_testboard_E8.easy
Initializing in file path:   C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214090159_testboard_E8.easy
Processing:  20181214090159_testboard_E8
Filenameroot:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214090159_testboard_E8
Extension:  easy
 
_______________________________________________________________
Reading info file ...
Step Details
Info Version: 1.2
Step name: 
StartDate (firstEEGtimestamp): 1544774518507
Device class: ENOBIO
Communication type: Bluetooth
Device ID: 00:07:80:0F:63:86
Software's version: NIC v2.0.10
Firmware's version: 1256
Operative system: Windows
SDCard Filename: NONE
Additional channel: NONE

EEG Settings
Total number of channels: 8
Number of EEG channels: 8
Number of records of EEG: 90000
EEG sampling rate: 500 Samples/second
Effective EEG sampling rate: N/A
EEG recording configured duration (s): 180
Number of packets lost: 0(0.00%)
Line filter status: OFF
FIR filter status: OFF
EOG correction filter status: OFF
Reference filter status: OFF
EEG units: nV
EEG montage: 
	Channel 1: F6
	Channel 2: F4
	Channel 3: F2
	Channel 4: Fz
	Channel 5: F1
	Channel 6: F3
	Channel 7: F5
	Channel 8: Cz
Accelerometer data: ON
.info file found and read.

_______________________________________________________________
Reading: 20181214090159_testboard_E8 . easy 
 
Number of channels detected: 8
First sample recorded : 2018-12-14 09:01:58 

 L0 raw data data in uV
                 F6            F4            F2            Fz           F1  \
count  90000.000000  90000.000000  90000.000000  90000.000000  90000.00000   
mean     315.289488   -599.396540    223.635793   -282.218188   -268.81353   
std       15.718408     13.982947     13.640501     13.556471     13.62517   
min     -226.116000  -1118.230000   -289.630000   -789.690000   -776.76700   
25%      309.467000   -602.436000    221.395000   -284.433000   -271.36800   
50%      315.380000   -599.384000    223.636000   -282.239000   -268.79300   
75%      321.102000   -596.332000    225.830000   -280.046000   -266.31300   
max      888.443000    -80.871000    742.197000    231.695000    243.18600   

                 F3            F5            Cz            ax            ay  \
count  90000.000000  90000.000000  90000.000000  90000.000000  90000.000000   
mean     -32.343784   -515.676789    190.769976     81.849800     17.749811   
std       13.695445     13.813497     13.878209   1004.576048    821.329224   
min     -538.873000  -1024.389000   -322.151000  -4854.000000  -6423.000000   
25%      -35.047000   -518.655000    187.635000    -29.000000    186.000000   
50%      -32.329000   -515.651000    190.782000      0.000000    186.000000   
75%      -29.659000   -512.695000    193.882000      0.000000    225.000000   
max      479.459000     -3.576000    706.386000  10051.000000   4050.000000   

                 az       markers     unix_time  
count  90000.000000  90000.000000  9.000000e+04  
mean    9117.544778      0.000256  1.544775e+12  
std     1491.102339      0.016665  5.196253e+04  
min   -12081.000000      0.000000  1.544775e+12  
25%     9286.000000      0.000000  1.544775e+12  
50%     9326.000000      0.000000  1.544775e+12  
75%     9365.000000      0.000000  1.544775e+12  
max    11581.000000      2.000000  1.544775e+12  
Plotting EEG channels after this pipeline:
1 . Object created: 2019-04-15 16:02

File:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214090159_testboard_E8.easy
Plotting PSDs after this pipeline:
1 . Object created: 2019-04-15 16:02

File:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214090159_testboard_E8

Channel 1: F6, STD=  15.7 uV
Channel 2: F4, STD=  14.0 uV
Channel 3: F2, STD=  13.6 uV
Channel 4: Fz, STD=  13.6 uV
Channel 5: F1, STD=  13.6 uV
Channel 6: F3, STD=  13.7 uV
Channel 7: F5, STD=  13.8 uV
Channel 8: Cz, STD=  13.9 uV
--------QUALITY CHECK--------
Current log is:
['Object created: 2019-04-15 16:02']

Checking Quality of data with epoch length of  10.0  seconds.
Offset limit:  1.0
STD limit:  15.0
Channel F6    : Offset =    0.3 mV    / STD =   15.7 uV (*)
Channel F4    : Offset =   -0.6 mV    / STD =   14.0 uV  
Channel F2    : Offset =    0.2 mV    / STD =   13.6 uV  
Channel Fz    : Offset =   -0.3 mV    / STD =   13.6 uV  
Channel F1    : Offset =   -0.3 mV    / STD =   13.6 uV  
Channel F3    : Offset =   -0.0 mV    / STD =   13.7 uV  
Channel F5    : Offset =   -0.5 mV    / STD =   13.8 uV  
Channel Cz    : Offset =    0.2 mV    / STD =   13.9 uV  
Minutes of data: 3.0
Max epochs per channel:  17

-Epoch Amplitude threshold:  75.0
-Epoch STD threshold:  30.0 

Found 0 bad channel-epochs out of 136, or 0.0%.
                

Bad channel-epochs per channel:
channel 0   /    F6, N= 0    (or 0.0%)
channel 1   /    F4, N= 0    (or 0.0%)
channel 2   /    F2, N= 0    (or 0.0%)
channel 3   /    Fz, N= 0    (or 0.0%)
channel 4   /    F1, N= 0    (or 0.0%)
channel 5   /    F3, N= 0    (or 0.0%)
channel 6   /    F5, N= 0    (or 0.0%)
channel 7   /    Cz, N= 0    (or 0.0%)

---------QC COMPLETE---------
---------PREPROCESSING---------
Pipeline:
['reset', 'rereference', 'detrend', 'remove_line_freq', 'bandpassfilter']
-------------------------------
Step 1 :  reset  ...
-------------------------------
 
Step 2 :  rereference  ...
Reference electrodes:  ['Cz']
-------------------------------
 
Step 3 :  detrend  ...
Every  10.0  seconds
-------------------------------
 
Step 4 :  remove_line_freq  ...
Power line frequency:  50.0
Notch Q-factor:  30.0
-------------------------------
 
Step 5 :  bandpassfilter  ...
Cutoff frequencies:  2.0 - 45.0
-------------------------------
 
Done: Updated Log:  ['Object created: 2019-04-15 16:02', 'EEG reset on 2019-04-15 16:02', 'Reference to: Cz on 2019-04-15 16:02', 'Detrend data every 10.0 s on 2019-04-15 16:02', 'Notch at 50.0 with Q=30.0 on 2019-04-15 16:02', 'Filter at low_cutoff_freq= 2.0 and high_cutoff_freq=45.0 on 2019-04-15 16:02']
 

--------QUALITY CHECK--------
Current log is:
['Object created: 2019-04-15 16:02', 'EEG reset on 2019-04-15 16:02', 'Reference to: Cz on 2019-04-15 16:02', 'Detrend data every 10.0 s on 2019-04-15 16:02', 'Notch at 50.0 with Q=30.0 on 2019-04-15 16:02', 'Filter at low_cutoff_freq= 2.0 and high_cutoff_freq=45.0 on 2019-04-15 16:02']

Checking Quality of data with epoch length of  10.0  seconds.
Offset limit:  1.0
STD limit:  15.0
Channel F6    : Offset =    0.0 mV    / STD =    0.7 uV  
Channel F4    : Offset =    0.0 mV    / STD =    0.6 uV  
Channel F2    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel Fz    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel F1    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel F3    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel F5    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel Cz    : Offset =    0.0 mV    / STD =    0.0 uV  
Minutes of data: 3.0
Max epochs per channel:  17

-Epoch Amplitude threshold:  75.0
-Epoch STD threshold:  30.0 

Found 0 bad channel-epochs out of 136, or 0.0%.
                

Bad channel-epochs per channel:
channel 0   /    F6, N= 0    (or 0.0%)
channel 1   /    F4, N= 0    (or 0.0%)
channel 2   /    F2, N= 0    (or 0.0%)
channel 3   /    Fz, N= 0    (or 0.0%)
channel 4   /    F1, N= 0    (or 0.0%)
channel 5   /    F3, N= 0    (or 0.0%)
channel 6   /    F5, N= 0    (or 0.0%)
channel 7   /    Cz, N= 0    (or 0.0%)

---------QC COMPLETE---------
Plotting EEG channels after this pipeline:
1 . Object created: 2019-04-15 16:02
2 . EEG reset on 2019-04-15 16:02
3 . Reference to: Cz on 2019-04-15 16:02
4 . Detrend data every 10.0 s on 2019-04-15 16:02
5 . Notch at 50.0 with Q=30.0 on 2019-04-15 16:02
6 . Filter at low_cutoff_freq= 2.0 and high_cutoff_freq=45.0 on 2019-04-15 16:02

File:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214090159_testboard_E8.easy
Plotting PSDs after this pipeline:
1 . Object created: 2019-04-15 16:02
2 . EEG reset on 2019-04-15 16:02
3 . Reference to: Cz on 2019-04-15 16:02
4 . Detrend data every 10.0 s on 2019-04-15 16:02
5 . Notch at 50.0 with Q=30.0 on 2019-04-15 16:02
6 . Filter at low_cutoff_freq= 2.0 and high_cutoff_freq=45.0 on 2019-04-15 16:02

File:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214090159_testboard_E8

Channel 1: F6, STD=   0.7 uV
Channel 2: F4, STD=   0.6 uV
Channel 3: F2, STD=   0.5 uV
Channel 4: Fz, STD=   0.5 uV
Channel 5: F1, STD=   0.5 uV
Channel 6: F3, STD=   0.5 uV
Channel 7: F5, STD=   0.5 uV
Channel 8: Cz, STD=   0.0 uV

##########################################################################

         Processing C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214093909_testboard_E20.nedf
##########################################################################


Found the file: C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214093909_testboard_E20.nedf

File found! C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214093909_testboard_E20.nedf
Reading file...
Header information has been correctly retrieved.
Finished processing
Plotting EEG channels after this pipeline:
1 . Object created: 2019-04-15 16:02

File:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214093909_testboard_E20.nedf
Plotting PSDs after this pipeline:
1 . Object created: 2019-04-15 16:02

File:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214093909_testboard_E20

Channel 1: P7, STD=   3.1 uV
Channel 2: P4, STD=   2.1 uV
Channel 3: Cz, STD=   2.0 uV
Channel 4: Pz, STD=   2.1 uV
Channel 5: P3, STD=   2.1 uV
Channel 6: P8, STD=   2.1 uV
Channel 7: O1, STD=   2.1 uV
Channel 8: O2, STD=   2.0 uV
Channel 9: T8, STD=   3.5 uV
Channel 10: F8, STD=   2.1 uV
Channel 11: C4, STD=   2.0 uV
Channel 12: F4, STD=   2.1 uV
Channel 13: Fp2, STD=   2.0 uV
Channel 14: Fz, STD=   2.1 uV
Channel 15: C3, STD=   2.1 uV
Channel 16: F3, STD=   2.1 uV
Channel 17: Fp1, STD=   2.2 uV
Channel 18: T7, STD=   2.2 uV
Channel 19: F7, STD=   2.6 uV
Channel 20: EXT, STD=   2.5 uV
--------QUALITY CHECK--------
Current log is:
['Object created: 2019-04-15 16:02']

Checking Quality of data with epoch length of  10.0  seconds.
Offset limit:  1.0
STD limit:  15.0
Channel P7    : Offset =    0.1 mV    / STD =    3.1 uV  
Channel P4    : Offset =   -0.6 mV    / STD =    2.1 uV  
Channel Cz    : Offset =   -0.1 mV    / STD =    2.0 uV  
Channel Pz    : Offset =   -0.1 mV    / STD =    2.1 uV  
Channel P3    : Offset =   -0.1 mV    / STD =    2.1 uV  
Channel P8    : Offset =   -0.0 mV    / STD =    2.1 uV  
Channel O1    : Offset =   -0.2 mV    / STD =    2.1 uV  
Channel O2    : Offset =    0.4 mV    / STD =    2.0 uV  
Channel T8    : Offset =    0.3 mV    / STD =    3.5 uV  
Channel F8    : Offset =   -0.4 mV    / STD =    2.1 uV  
Channel C4    : Offset =   -0.1 mV    / STD =    2.0 uV  
Channel F4    : Offset =   -0.0 mV    / STD =    2.1 uV  
Channel Fp2   : Offset =   -0.1 mV    / STD =    2.0 uV  
Channel Fz    : Offset =    0.0 mV    / STD =    2.1 uV  
Channel C3    : Offset =   -0.2 mV    / STD =    2.1 uV  
Channel F3    : Offset =    0.0 mV    / STD =    2.1 uV  
Channel Fp1   : Offset =    0.1 mV    / STD =    2.2 uV  
Channel T7    : Offset =   -0.1 mV    / STD =    2.2 uV  
Channel F7    : Offset =   -0.3 mV    / STD =    2.6 uV  
Channel EXT   : Offset =   -0.1 mV    / STD =    2.5 uV  
Minutes of data: 3.0
Max epochs per channel:  17

-Epoch Amplitude threshold:  75.0
-Epoch STD threshold:  30.0 

Found 0 bad channel-epochs out of 340, or 0.0%.
                

Bad channel-epochs per channel:
channel 0   /    P7, N= 0    (or 0.0%)
channel 1   /    P4, N= 0    (or 0.0%)
channel 2   /    Cz, N= 0    (or 0.0%)
channel 3   /    Pz, N= 0    (or 0.0%)
channel 4   /    P3, N= 0    (or 0.0%)
channel 5   /    P8, N= 0    (or 0.0%)
channel 6   /    O1, N= 0    (or 0.0%)
channel 7   /    O2, N= 0    (or 0.0%)
channel 8   /    T8, N= 0    (or 0.0%)
channel 9   /    F8, N= 0    (or 0.0%)
channel 10  /    C4, N= 0    (or 0.0%)
channel 11  /    F4, N= 0    (or 0.0%)
channel 12  /   Fp2, N= 0    (or 0.0%)
channel 13  /    Fz, N= 0    (or 0.0%)
channel 14  /    C3, N= 0    (or 0.0%)
channel 15  /    F3, N= 0    (or 0.0%)
channel 16  /   Fp1, N= 0    (or 0.0%)
channel 17  /    T7, N= 0    (or 0.0%)
channel 18  /    F7, N= 0    (or 0.0%)
channel 19  /   EXT, N= 0    (or 0.0%)

---------QC COMPLETE---------
---------PREPROCESSING---------
Pipeline:
['reset', 'rereference', 'detrend', 'remove_line_freq', 'bandpassfilter']
-------------------------------
Step 1 :  reset  ...
-------------------------------
 
Step 2 :  rereference  ...
Reference electrodes:  ['Cz']
-------------------------------
 
Step 3 :  detrend  ...
Every  10.0  seconds
-------------------------------
 
Step 4 :  remove_line_freq  ...
Power line frequency:  50.0
Notch Q-factor:  30.0
-------------------------------
 
Step 5 :  bandpassfilter  ...
Cutoff frequencies:  2.0 - 45.0
-------------------------------
 
Done: Updated Log:  ['Object created: 2019-04-15 16:02', 'EEG reset on 2019-04-15 16:02', 'Reference to: Cz on 2019-04-15 16:02', 'Detrend data every 10.0 s on 2019-04-15 16:02', 'Notch at 50.0 with Q=30.0 on 2019-04-15 16:02', 'Filter at low_cutoff_freq= 2.0 and high_cutoff_freq=45.0 on 2019-04-15 16:02']
 

--------QUALITY CHECK--------
Current log is:
['Object created: 2019-04-15 16:02', 'EEG reset on 2019-04-15 16:02', 'Reference to: Cz on 2019-04-15 16:02', 'Detrend data every 10.0 s on 2019-04-15 16:02', 'Notch at 50.0 with Q=30.0 on 2019-04-15 16:02', 'Filter at low_cutoff_freq= 2.0 and high_cutoff_freq=45.0 on 2019-04-15 16:02']

Checking Quality of data with epoch length of  10.0  seconds.
Offset limit:  1.0
STD limit:  15.0
Channel P7    : Offset =   -0.0 mV    / STD =    0.6 uV  
Channel P4    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel Cz    : Offset =    0.0 mV    / STD =    0.0 uV  
Channel Pz    : Offset =   -0.0 mV    / STD =    0.5 uV  
Channel P3    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel P8    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel O1    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel O2    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel T8    : Offset =   -0.0 mV    / STD =    0.6 uV  
Channel F8    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel C4    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel F4    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel Fp2   : Offset =    0.0 mV    / STD =    0.5 uV  
Channel Fz    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel C3    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel F3    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel Fp1   : Offset =    0.0 mV    / STD =    0.6 uV  
Channel T7    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel F7    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel EXT   : Offset =    0.0 mV    / STD =    0.5 uV  
Minutes of data: 3.0
Max epochs per channel:  17

-Epoch Amplitude threshold:  75.0
-Epoch STD threshold:  30.0 

Found 0 bad channel-epochs out of 340, or 0.0%.
                

Bad channel-epochs per channel:
channel 0   /    P7, N= 0    (or 0.0%)
channel 1   /    P4, N= 0    (or 0.0%)
channel 2   /    Cz, N= 0    (or 0.0%)
channel 3   /    Pz, N= 0    (or 0.0%)
channel 4   /    P3, N= 0    (or 0.0%)
channel 5   /    P8, N= 0    (or 0.0%)
channel 6   /    O1, N= 0    (or 0.0%)
channel 7   /    O2, N= 0    (or 0.0%)
channel 8   /    T8, N= 0    (or 0.0%)
channel 9   /    F8, N= 0    (or 0.0%)
channel 10  /    C4, N= 0    (or 0.0%)
channel 11  /    F4, N= 0    (or 0.0%)
channel 12  /   Fp2, N= 0    (or 0.0%)
channel 13  /    Fz, N= 0    (or 0.0%)
channel 14  /    C3, N= 0    (or 0.0%)
channel 15  /    F3, N= 0    (or 0.0%)
channel 16  /   Fp1, N= 0    (or 0.0%)
channel 17  /    T7, N= 0    (or 0.0%)
channel 18  /    F7, N= 0    (or 0.0%)
channel 19  /   EXT, N= 0    (or 0.0%)

---------QC COMPLETE---------
Plotting EEG channels after this pipeline:
1 . Object created: 2019-04-15 16:02
2 . EEG reset on 2019-04-15 16:02
3 . Reference to: Cz on 2019-04-15 16:02
4 . Detrend data every 10.0 s on 2019-04-15 16:02
5 . Notch at 50.0 with Q=30.0 on 2019-04-15 16:02
6 . Filter at low_cutoff_freq= 2.0 and high_cutoff_freq=45.0 on 2019-04-15 16:02

File:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214093909_testboard_E20.nedf
Plotting PSDs after this pipeline:
1 . Object created: 2019-04-15 16:02
2 . EEG reset on 2019-04-15 16:02
3 . Reference to: Cz on 2019-04-15 16:02
4 . Detrend data every 10.0 s on 2019-04-15 16:02
5 . Notch at 50.0 with Q=30.0 on 2019-04-15 16:02
6 . Filter at low_cutoff_freq= 2.0 and high_cutoff_freq=45.0 on 2019-04-15 16:02

File:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214093909_testboard_E20

Channel 1: P7, STD=   0.6 uV
Channel 2: P4, STD=   0.5 uV
Channel 3: Cz, STD=   0.0 uV
Channel 4: Pz, STD=   0.5 uV
Channel 5: P3, STD=   0.5 uV
Channel 6: P8, STD=   0.5 uV
Channel 7: O1, STD=   0.5 uV
Channel 8: O2, STD=   0.5 uV
Channel 9: T8, STD=   0.6 uV
Channel 10: F8, STD=   0.5 uV
Channel 11: C4, STD=   0.5 uV
Channel 12: F4, STD=   0.5 uV
Channel 13: Fp2, STD=   0.5 uV
Channel 14: Fz, STD=   0.5 uV
Channel 15: C3, STD=   0.5 uV
Channel 16: F3, STD=   0.5 uV
Channel 17: Fp1, STD=   0.6 uV
Channel 18: T7, STD=   0.5 uV
Channel 19: F7, STD=   0.5 uV
Channel 20: EXT, STD=   0.5 uV

##########################################################################

         Processing C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214100347_testboard_E32.easy
##########################################################################


Found the file: C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214100347_testboard_E32.easy
Initializing in file path:   C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214100347_testboard_E32.easy
Processing:  20181214100347_testboard_E32
Filenameroot:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214100347_testboard_E32
Extension:  easy
 
_______________________________________________________________
Reading info file ...
Step Details
Info Version: 1.2
Step name: 
StartDate (firstEEGtimestamp): 1544778225268
Device class: ENOBIO
Communication type: WiFi
Device ID: NE-Wifi(00:07:80:0D:7B:83)
Software's version: NIC v2.0.10
Firmware's version: 3018
Operative system: Windows
SDCard Filename: NONE
Additional channel: NONE

EEG Settings
Total number of channels: 32
Number of EEG channels: 32
Number of records of EEG: 90000
EEG sampling rate: 500 Samples/second
Effective EEG sampling rate: N/A
EEG recording configured duration (s): 180
Number of packets lost: 0
Line filter status: OFF
FIR filter status: OFF
EOG correction filter status: OFF
Reference filter status: OFF
EEG units: nV
EEG montage: 
	Channel 1: P7
	Channel 2: P4
	Channel 3: Cz
	Channel 4: Pz
	Channel 5: P3
	Channel 6: P8
	Channel 7: O1
	Channel 8: O2
	Channel 9: T8
	Channel 10: F8
	Channel 11: C4
	Channel 12: F4
	Channel 13: Fp2
	Channel 14: Fz
	Channel 15: C3
	Channel 16: F3
	Channel 17: Fp1
	Channel 18: T7
	Channel 19: F7
	Channel 20: Oz
	Channel 21: PO4
	Channel 22: FC6
	Channel 23: FC2
	Channel 24: AF4
	Channel 25: CP6
	Channel 26: CP2
	Channel 27: CP1
	Channel 28: CP5
	Channel 29: FC1
	Channel 30: FC5
	Channel 31: AF3
	Channel 32: PO3
Accelerometer data: ON
.info file found and read.

_______________________________________________________________
Reading: 20181214100347_testboard_E32 . easy 
 
Number of channels detected: 32
First sample recorded : 2018-12-14 10:03:45 

 L0 raw data data in uV
                 P7            P4            Cz            Pz            P3  \
count  90000.000000  90000.000000  90000.000000  90000.000000  90000.000000   
mean     458.819539    -82.991117   -134.187717    -97.473076   -174.934017   
std        7.934464      2.930902      3.968895      4.341049      4.599806   
min      425.052000    -98.037000   -154.066000   -116.872000   -195.932000   
25%      452.661000    -84.877000   -137.043000   -100.708000   -178.384000   
50%      458.860000    -83.017000   -134.134000    -97.465000   -174.903000   
75%      464.916000    -81.157000   -131.368000    -94.270000   -171.470000   
max      487.041000    -68.521000   -115.823000    -80.537000   -157.499000   

                 P8            O1            O2            T8            F8  \
count  90000.000000  90000.000000  90000.000000  90000.000000  90000.000000   
mean    -120.577853     51.102792     52.768981   -766.805021    342.086539   
std        4.774195      5.056201      5.273413      3.744337      4.518742   
min     -139.904000     30.088000     30.612000   -799.322000    320.720000   
25%     -124.168000     47.254000     48.732000   -769.090000    338.792000   
50%     -120.496000     51.116000     52.785000   -766.754000    342.083000   
75%     -117.015000     54.979000     56.791000   -764.417000    345.373000   
max     -103.282000     66.947000     69.665000   -726.556000    366.020000   

           ...                CP5           FC1           FC5           AF3  \
count      ...       90000.000000  90000.000000  90000.000000  90000.000000   
mean       ...        -540.337378    103.438877   -455.005092     -7.723105   
std        ...           8.424761      4.724568      5.348618      6.805992   
min        ...        -565.338000     84.304000   -489.711000    -31.518000   
25%        ...        -547.123000     99.897000   -458.145000    -13.160000   
50%        ...        -540.304000    103.425000   -454.950000     -7.724000   
75%        ...        -533.533000    106.954000   -451.803000     -2.288000   
max        ...        -517.416000    120.925000   -420.761000     13.399000   

                PO3            ax            ay            az       markers  \
count  90000.000000  90000.000000  90000.000000  90000.000000  90000.000000   
mean    -735.544603   -207.431467    241.812622   8614.224422      0.000256   
std       11.136087   1418.963015   1351.715798   2096.284731      0.016665   
min     -764.751000 -10551.000000 -21682.000000 -12307.000000      0.000000   
25%     -744.628000   -382.000000    451.000000   8943.000000      0.000000   
50%     -735.473000   -343.000000    529.000000   9022.000000      0.000000   
75%     -726.413000   -225.000000    568.000000   9100.000000      0.000000   
max     -706.052000  10434.000000   3628.000000  41109.000000      2.000000   

          unix_time  
count  9.000000e+04  
mean   1.544778e+12  
std    5.196941e+04  
min    1.544778e+12  
25%    1.544778e+12  
50%    1.544778e+12  
75%    1.544778e+12  
max    1.544778e+12  

[8 rows x 37 columns]
Plotting EEG channels after this pipeline:
1 . Object created: 2019-04-15 16:03

File:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214100347_testboard_E32.easy
Plotting PSDs after this pipeline:
1 . Object created: 2019-04-15 16:03

File:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214100347_testboard_E32

Channel 1: P7, STD=   7.9 uV
Channel 2: P4, STD=   2.9 uV
Channel 3: Cz, STD=   4.0 uV
Channel 4: Pz, STD=   4.3 uV
Channel 5: P3, STD=   4.6 uV
Channel 6: P8, STD=   4.8 uV
Channel 7: O1, STD=   5.1 uV
Channel 8: O2, STD=   5.3 uV
Channel 9: T8, STD=   3.7 uV
Channel 10: F8, STD=   4.5 uV
Channel 11: C4, STD=   4.6 uV
Channel 12: F4, STD=   4.8 uV
Channel 13: Fp2, STD=   5.0 uV
Channel 14: Fz, STD=   5.1 uV
Channel 15: C3, STD=   5.1 uV
Channel 16: F3, STD=   5.3 uV
Channel 17: Fp1, STD=   2.6 uV
Channel 18: T7, STD=   2.5 uV
Channel 19: F7, STD=   2.9 uV
Channel 20: Oz, STD=   3.2 uV
Channel 21: PO4, STD=  12.1 uV
Channel 22: FC6, STD=   9.4 uV
Channel 23: FC2, STD=   8.7 uV
Channel 24: AF4, STD=   8.4 uV
Channel 25: CP6, STD=   8.4 uV
Channel 26: CP2, STD=   8.3 uV
Channel 27: CP1, STD=   8.3 uV
Channel 28: CP5, STD=   8.4 uV
Channel 29: FC1, STD=   4.7 uV
Channel 30: FC5, STD=   5.3 uV
Channel 31: AF3, STD=   6.8 uV
Channel 32: PO3, STD=  11.1 uV
--------QUALITY CHECK--------
Current log is:
['Object created: 2019-04-15 16:03']

Checking Quality of data with epoch length of  10.0  seconds.
Offset limit:  1.0
STD limit:  15.0
Channel P7    : Offset =    0.5 mV    / STD =    7.9 uV  
Channel P4    : Offset =   -0.1 mV    / STD =    2.9 uV  
Channel Cz    : Offset =   -0.1 mV    / STD =    4.0 uV  
Channel Pz    : Offset =   -0.1 mV    / STD =    4.3 uV  
Channel P3    : Offset =   -0.2 mV    / STD =    4.6 uV  
Channel P8    : Offset =   -0.1 mV    / STD =    4.8 uV  
Channel O1    : Offset =    0.1 mV    / STD =    5.1 uV  
Channel O2    : Offset =    0.1 mV    / STD =    5.3 uV  
Channel T8    : Offset =   -0.8 mV    / STD =    3.7 uV  
Channel F8    : Offset =    0.3 mV    / STD =    4.5 uV  
Channel C4    : Offset =   -0.2 mV    / STD =    4.6 uV  
Channel F4    : Offset =    0.1 mV    / STD =    4.8 uV  
Channel Fp2   : Offset =    0.0 mV    / STD =    5.0 uV  
Channel Fz    : Offset =   -0.4 mV    / STD =    5.1 uV  
Channel C3    : Offset =    0.1 mV    / STD =    5.1 uV  
Channel F3    : Offset =   -0.5 mV    / STD =    5.3 uV  
Channel Fp1   : Offset =   -0.1 mV    / STD =    2.6 uV  
Channel T7    : Offset =   -0.3 mV    / STD =    2.5 uV  
Channel F7    : Offset =    0.1 mV    / STD =    2.9 uV  
Channel Oz    : Offset =   -0.1 mV    / STD =    3.2 uV  
Channel PO4   : Offset =   -0.3 mV    / STD =   12.1 uV  
Channel FC6   : Offset =    0.3 mV    / STD =    9.4 uV  
Channel FC2   : Offset =   -0.1 mV    / STD =    8.7 uV  
Channel AF4   : Offset =    0.3 mV    / STD =    8.4 uV  
Channel CP6   : Offset =   -0.0 mV    / STD =    8.4 uV  
Channel CP2   : Offset =   -0.4 mV    / STD =    8.3 uV  
Channel CP1   : Offset =    0.4 mV    / STD =    8.3 uV  
Channel CP5   : Offset =   -0.5 mV    / STD =    8.4 uV  
Channel FC1   : Offset =    0.1 mV    / STD =    4.7 uV  
Channel FC5   : Offset =   -0.5 mV    / STD =    5.3 uV  
Channel AF3   : Offset =   -0.0 mV    / STD =    6.8 uV  
Channel PO3   : Offset =   -0.7 mV    / STD =   11.1 uV  
Minutes of data: 3.0
Max epochs per channel:  17

-Epoch Amplitude threshold:  75.0
-Epoch STD threshold:  30.0 

Found 0 bad channel-epochs out of 544, or 0.0%.
                

Bad channel-epochs per channel:
channel 0   /    P7, N= 0    (or 0.0%)
channel 1   /    P4, N= 0    (or 0.0%)
channel 2   /    Cz, N= 0    (or 0.0%)
channel 3   /    Pz, N= 0    (or 0.0%)
channel 4   /    P3, N= 0    (or 0.0%)
channel 5   /    P8, N= 0    (or 0.0%)
channel 6   /    O1, N= 0    (or 0.0%)
channel 7   /    O2, N= 0    (or 0.0%)
channel 8   /    T8, N= 0    (or 0.0%)
channel 9   /    F8, N= 0    (or 0.0%)
channel 10  /    C4, N= 0    (or 0.0%)
channel 11  /    F4, N= 0    (or 0.0%)
channel 12  /   Fp2, N= 0    (or 0.0%)
channel 13  /    Fz, N= 0    (or 0.0%)
channel 14  /    C3, N= 0    (or 0.0%)
channel 15  /    F3, N= 0    (or 0.0%)
channel 16  /   Fp1, N= 0    (or 0.0%)
channel 17  /    T7, N= 0    (or 0.0%)
channel 18  /    F7, N= 0    (or 0.0%)
channel 19  /    Oz, N= 0    (or 0.0%)
channel 20  /   PO4, N= 0    (or 0.0%)
channel 21  /   FC6, N= 0    (or 0.0%)
channel 22  /   FC2, N= 0    (or 0.0%)
channel 23  /   AF4, N= 0    (or 0.0%)
channel 24  /   CP6, N= 0    (or 0.0%)
channel 25  /   CP2, N= 0    (or 0.0%)
channel 26  /   CP1, N= 0    (or 0.0%)
channel 27  /   CP5, N= 0    (or 0.0%)
channel 28  /   FC1, N= 0    (or 0.0%)
channel 29  /   FC5, N= 0    (or 0.0%)
channel 30  /   AF3, N= 0    (or 0.0%)
channel 31  /   PO3, N= 0    (or 0.0%)

---------QC COMPLETE---------
---------PREPROCESSING---------
Pipeline:
['reset', 'rereference', 'detrend', 'remove_line_freq', 'bandpassfilter']
-------------------------------
Step 1 :  reset  ...
-------------------------------
 
Step 2 :  rereference  ...
Reference electrodes:  ['Cz']
-------------------------------
 
Step 3 :  detrend  ...
Every  10.0  seconds
-------------------------------
 
Step 4 :  remove_line_freq  ...
Power line frequency:  50.0
Notch Q-factor:  30.0
-------------------------------
 
Step 5 :  bandpassfilter  ...
Cutoff frequencies:  2.0 - 45.0
-------------------------------
 
Done: Updated Log:  ['Object created: 2019-04-15 16:03', 'EEG reset on 2019-04-15 16:03', 'Reference to: Cz on 2019-04-15 16:03', 'Detrend data every 10.0 s on 2019-04-15 16:03', 'Notch at 50.0 with Q=30.0 on 2019-04-15 16:03', 'Filter at low_cutoff_freq= 2.0 and high_cutoff_freq=45.0 on 2019-04-15 16:03']
 

--------QUALITY CHECK--------
Current log is:
['Object created: 2019-04-15 16:03', 'EEG reset on 2019-04-15 16:03', 'Reference to: Cz on 2019-04-15 16:03', 'Detrend data every 10.0 s on 2019-04-15 16:03', 'Notch at 50.0 with Q=30.0 on 2019-04-15 16:03', 'Filter at low_cutoff_freq= 2.0 and high_cutoff_freq=45.0 on 2019-04-15 16:03']

Checking Quality of data with epoch length of  10.0  seconds.
Offset limit:  1.0
STD limit:  15.0
Channel P7    : Offset =    0.0 mV    / STD =    0.7 uV  
Channel P4    : Offset =   -0.0 mV    / STD =    0.5 uV  
Channel Cz    : Offset =    0.0 mV    / STD =    0.0 uV  
Channel Pz    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel P3    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel P8    : Offset =   -0.0 mV    / STD =    0.5 uV  
Channel O1    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel O2    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel T8    : Offset =    0.0 mV    / STD =    0.6 uV  
Channel F8    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel C4    : Offset =   -0.0 mV    / STD =    0.5 uV  
Channel F4    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel Fp2   : Offset =    0.0 mV    / STD =    0.5 uV  
Channel Fz    : Offset =   -0.0 mV    / STD =    0.5 uV  
Channel C3    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel F3    : Offset =   -0.0 mV    / STD =    0.5 uV  
Channel Fp1   : Offset =   -0.0 mV    / STD =    0.6 uV  
Channel T7    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel F7    : Offset =    0.0 mV    / STD =    0.5 uV  
Channel Oz    : Offset =   -0.0 mV    / STD =    0.5 uV  
Channel PO4   : Offset =   -0.0 mV    / STD =    0.6 uV  
Channel FC6   : Offset =    0.0 mV    / STD =    0.5 uV  
Channel FC2   : Offset =    0.0 mV    / STD =    0.5 uV  
Channel AF4   : Offset =    0.0 mV    / STD =    0.5 uV  
Channel CP6   : Offset =    0.0 mV    / STD =    0.5 uV  
Channel CP2   : Offset =    0.0 mV    / STD =    0.5 uV  
Channel CP1   : Offset =    0.0 mV    / STD =    0.5 uV  
Channel CP5   : Offset =    0.0 mV    / STD =    0.5 uV  
Channel FC1   : Offset =    0.0 mV    / STD =    0.6 uV  
Channel FC5   : Offset =    0.0 mV    / STD =    0.5 uV  
Channel AF3   : Offset =    0.0 mV    / STD =    0.5 uV  
Channel PO3   : Offset =    0.0 mV    / STD =    0.5 uV  
Minutes of data: 3.0
Max epochs per channel:  17

-Epoch Amplitude threshold:  75.0
-Epoch STD threshold:  30.0 

Found 0 bad channel-epochs out of 544, or 0.0%.
                

Bad channel-epochs per channel:
channel 0   /    P7, N= 0    (or 0.0%)
channel 1   /    P4, N= 0    (or 0.0%)
channel 2   /    Cz, N= 0    (or 0.0%)
channel 3   /    Pz, N= 0    (or 0.0%)
channel 4   /    P3, N= 0    (or 0.0%)
channel 5   /    P8, N= 0    (or 0.0%)
channel 6   /    O1, N= 0    (or 0.0%)
channel 7   /    O2, N= 0    (or 0.0%)
channel 8   /    T8, N= 0    (or 0.0%)
channel 9   /    F8, N= 0    (or 0.0%)
channel 10  /    C4, N= 0    (or 0.0%)
channel 11  /    F4, N= 0    (or 0.0%)
channel 12  /   Fp2, N= 0    (or 0.0%)
channel 13  /    Fz, N= 0    (or 0.0%)
channel 14  /    C3, N= 0    (or 0.0%)
channel 15  /    F3, N= 0    (or 0.0%)
channel 16  /   Fp1, N= 0    (or 0.0%)
channel 17  /    T7, N= 0    (or 0.0%)
channel 18  /    F7, N= 0    (or 0.0%)
channel 19  /    Oz, N= 0    (or 0.0%)
channel 20  /   PO4, N= 0    (or 0.0%)
channel 21  /   FC6, N= 0    (or 0.0%)
channel 22  /   FC2, N= 0    (or 0.0%)
channel 23  /   AF4, N= 0    (or 0.0%)
channel 24  /   CP6, N= 0    (or 0.0%)
channel 25  /   CP2, N= 0    (or 0.0%)
channel 26  /   CP1, N= 0    (or 0.0%)
channel 27  /   CP5, N= 0    (or 0.0%)
channel 28  /   FC1, N= 0    (or 0.0%)
channel 29  /   FC5, N= 0    (or 0.0%)
channel 30  /   AF3, N= 0    (or 0.0%)
channel 31  /   PO3, N= 0    (or 0.0%)

---------QC COMPLETE---------
Plotting EEG channels after this pipeline:
1 . Object created: 2019-04-15 16:03
2 . EEG reset on 2019-04-15 16:03
3 . Reference to: Cz on 2019-04-15 16:03
4 . Detrend data every 10.0 s on 2019-04-15 16:03
5 . Notch at 50.0 with Q=30.0 on 2019-04-15 16:03
6 . Filter at low_cutoff_freq= 2.0 and high_cutoff_freq=45.0 on 2019-04-15 16:03

File:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214100347_testboard_E32.easy
Plotting PSDs after this pipeline:
1 . Object created: 2019-04-15 16:03
2 . EEG reset on 2019-04-15 16:03
3 . Reference to: Cz on 2019-04-15 16:03
4 . Detrend data every 10.0 s on 2019-04-15 16:03
5 . Notch at 50.0 with Q=30.0 on 2019-04-15 16:03
6 . Filter at low_cutoff_freq= 2.0 and high_cutoff_freq=45.0 on 2019-04-15 16:03

File:  C:\Users\roser.sanchez\Desktop\EEG_DATA\testfiles/20181214100347_testboard_E32

Channel 1: P7, STD=   0.7 uV
Channel 2: P4, STD=   0.5 uV
Channel 3: Cz, STD=   0.0 uV
Channel 4: Pz, STD=   0.5 uV
Channel 5: P3, STD=   0.5 uV
Channel 6: P8, STD=   0.5 uV
Channel 7: O1, STD=   0.5 uV
Channel 8: O2, STD=   0.5 uV
Channel 9: T8, STD=   0.6 uV
Channel 10: F8, STD=   0.5 uV
Channel 11: C4, STD=   0.5 uV
Channel 12: F4, STD=   0.5 uV
Channel 13: Fp2, STD=   0.5 uV
Channel 14: Fz, STD=   0.5 uV
Channel 15: C3, STD=   0.5 uV
Channel 16: F3, STD=   0.5 uV
Channel 17: Fp1, STD=   0.6 uV
Channel 18: T7, STD=   0.5 uV
Channel 19: F7, STD=   0.5 uV
Channel 20: Oz, STD=   0.5 uV
Channel 21: PO4, STD=   0.6 uV
Channel 22: FC6, STD=   0.5 uV
Channel 23: FC2, STD=   0.5 uV
Channel 24: AF4, STD=   0.5 uV
Channel 25: CP6, STD=   0.5 uV
Channel 26: CP2, STD=   0.5 uV
Channel 27: CP1, STD=   0.5 uV
Channel 28: CP5, STD=   0.5 uV
Channel 29: FC1, STD=   0.6 uV
Channel 30: FC5, STD=   0.5 uV
Channel 31: AF3, STD=   0.5 uV
Channel 32: PO3, STD=   0.5 uV

Batch job complete.
Processed files: ['C:\\Users\\roser.sanchez\\Desktop\\EEG_DATA\\testfiles/20181214090159_testboard_E8.easy', 'C:\\Users\\roser.sanchez\\Desktop\\EEG_DATA\\testfiles/20181214093909_testboard_E20.nedf', 'C:\\Users\\roser.sanchez\\Desktop\\EEG_DATA\\testfiles/20181214100347_testboard_E32.easy']
Skipped files: []

Elapsed time (seconds): 119.58357334136963

END OF $batch$ DEMO

Thanks! I hope it was useful!

Enjoy Batch.


Main author: R Sanchez-Todo (roser.sanchez@neuroelectrics.com)

Contributors: are welcomed